#ifndef __PRINCIPAL_H__
#define __PRINCIPAL_H__
#include "global.h"

enum retorno { integer, string, boolean };

struct variaveis;

struct labels;

typedef int tHash;

typedef struct funcoes {
	struct funcoes *filho;
	struct funcoes *pai;
	struct funcoes *irmao;
    struct variaveis *vars; 
	struct labels *lbls;
//vai ter parametros	
	tHash *assinatura;
	enum retorno ret;
} tFuncao;

typedef struct variaveis {
	tFuncao *escopo;
	struct variaveis *irmao;
	enum retorno tipo; 
	char *nome;
} tVariavel;

typedef struct labels {
	tFuncao *escopo;
	struct labels *irmao;
	char *nome;
} tLabel;

//parametros -> tipo de passagem

#endif
